package threading;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ws
 * Date: 2023-07-04
 * Time: 14:35
 */
//饿汉模式
//把这个类设置为单例
class Singleton {
    //被static修饰，该属性是类的属性（类对象）
    //JVM中，每个类的类对象只能有唯一一份，因此，类对象里的这个成员，就是唯一的一份
    private static Singleton instance = new Singleton();//唯一实例的本体

    public static Singleton getInstance() {//获取到实例的方法
        return instance;
    }

    //禁止外部new实例，保证唯一
    private Singleton(){}
}
public class ThreadDemo17 {
    public static void main(String[] args) {
        //此时s1和s2是同一个对象
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();

        //Singleton s3 = new Singleton();//new不成功，Singleton() 在 threading.Singleton 中是 private 访问控制
        System.out.println(s1 == s2);
    }
}
